// 仅启动API服务器的测试文件（不连接数据库）
import 'dotenv/config';
import { createApp } from './src/api/index.js';
import { ConfigLoader } from './src/core/config/index.js';

// Mock服务工厂以避免数据库依赖
class MockServiceFactory {
  static getMessageProcessingService() {
    return {
      processMessage: async (message, options) => {
        console.log(`[MOCK] 处理消息 ${message.id}:`, message.type);
        return {
          messageId: message.id,
          status: 'processed',
          processingTime: Math.random() * 100,
        };
      }
    };
  }
}

// 替换真实的服务工厂
global.MockServiceFactory = MockServiceFactory;

async function startApiOnly() {
    try {
        console.log('🚀 启动 MCP API 服务器（仅API模式）...');
        
        // 加载配置
        const config = ConfigLoader.load();
        console.log('✅ 配置加载成功');
        
        // 直接创建API服务器，跳过数据库连接
        const app = await createApp(config);
        
        await app.listen({
            port: config.server.port,
            host: config.server.host
        });

        console.log(`🎉 MCP API 服务器已启动!`);
        console.log(`📚 API文档地址: http://${config.server.host}:${config.server.port}/docs`);
        console.log(`❤️  健康检查: http://${config.server.host}:${config.server.port}/api/v1/health`);
        
    } catch (error) {
        console.error('❌ 启动过程中出错:', error);
        process.exit(1);
    }
}

// 处理未捕获的异常
process.on('uncaughtException', (error) => {
    console.error('未捕获的异常:', error);
    process.exit(1);
});

process.on('unhandledRejection', (reason) => {
    console.error('未处理的Promise拒绝:', reason);
    process.exit(1);
});

// 启动应用程序
startApiOnly();
